#include <iostream>
#include <future>
#include <memory>
#include <thread>
using namespace std;

int Add(int a,int b)
{
    cout << "into Add" << endl;
    return a + b;
}

int main()
{
    //promise可以获取异步操作的返回值
    promise<int> p;

    //获取p返回的f对象
    future<int> f = p.get_future();

    //线程计算后的值赋予p对象
    thread t([&p](){
        int sum = Add(1,2);
        p.set_value(sum);
    });

    cout << f.get() << endl;
    return 0;
}

